/*
 * config.c
 *
 *  Created on: 20/10/2011
 *      Author: utn_so
 */

#include "libPPD.h"

char *setearCfgPPD(char *token)
{

  int32_t leerCfg = 0;
  char *pRetorno;
  char *path;
  path=getcwd(NULL,TAMSECTOR);
  strcat(path,pathCfg);
  char *ruta="/home/utn_so/Desarrollo/Workspace/PPDSincrono/Debug/config.cfg";
  leerCfg = leerConfiguracion(ruta,token,&pRetorno);
  free(path);
  if(leerCfg == Retorno_Error)
  {
	  exit(EXIT_FAILURE);
  }


return pRetorno;
}

int32_t stringAInt32 (char *pToken)
{
	int32_t memoriaLiberada=0;
	int32_t token = atoi(pToken);
	memoriaLiberada = liberarMemoria(&pToken);
	return token;
}

t_config abrirArchivoConfig()
{
	t_config config;

	char *pPuertoPFS, *pPuertoPRAID, *pLogActivado, *pIDdisco, *pC, *pH, *pS, *ptLectura, *ptEscritura, *pRPM, *pTPistas, *pCantConexiones =NULL;

	char tokenModoInicio[] = "Modo de Inicio";
	char tokenDirIpPFS[] = "Direccion Ip PFS";
	char tokenPuertoPFS[] ="Puerto Destino PFS";
	char tokenDirIpPRAID[] = "Direccion Ip PRAID";
	char tokenPuertoPRAID[] ="Puerto Destino PRAID";
	char tokenAlgoritmo[] = "Algoritmo de Planificacion";
	char tokenPathConsola[] = "Path Consola";
	char tokenLogActivado[] = "Log Activado";
	char tokenIDdisco[] = "ID Disco";
	char tokenC[] = "C";
	char tokenH[] = "H";
	char tokenS[] = "S";
	char tokenTiempoLectura[] = "Tiempo de Lectura";
	char tokenTiempoEscritura[] = "Tiempo de Escritura";
	char tokenRPM[] = "RPM";
	char tokenSaltoEntrePistas[] = "Salto entre Pistas";
	char tokenCantidadConexiones[] = "Cantidad de Conexiones";

	config.modoInicio = setearCfgPPD (tokenModoInicio);
	pPuertoPFS = setearCfgPPD (tokenPuertoPFS);
	config.dirIPpfs = setearCfgPPD (tokenDirIpPFS);
	pPuertoPRAID = setearCfgPPD (tokenPuertoPRAID);
	config.dirIPpraid = setearCfgPPD (tokenDirIpPRAID);
	config.algoritmo = setearCfgPPD (tokenAlgoritmo);
	config.pathConsola = setearCfgPPD (tokenPathConsola);
	pLogActivado = setearCfgPPD (tokenLogActivado);
	pIDdisco = setearCfgPPD (tokenIDdisco);
	pC = setearCfgPPD (tokenC);
	pH = setearCfgPPD (tokenH);
	pS = setearCfgPPD (tokenS);
	ptLectura = setearCfgPPD (tokenTiempoLectura);
	ptEscritura = setearCfgPPD (tokenTiempoEscritura);
	pRPM = setearCfgPPD (tokenRPM);
	pTPistas = setearCfgPPD (tokenSaltoEntrePistas);
	pCantConexiones = setearCfgPPD (tokenCantidadConexiones);

	config.puertoPFS = stringAInt32 (pPuertoPFS);
	config.puertoPRAID = stringAInt32 (pPuertoPRAID);
	config.logActivado = stringAInt32 (pLogActivado);
	config.c = stringAInt32 (pC);
	config.h = stringAInt32 (pH);
	config.s = stringAInt32 (pS);
	config.tiempoLectura = stringAInt32 (ptLectura);
	config.tiempoEscritura = stringAInt32 (ptEscritura);
	config.rpm = stringAInt32 (pRPM);
	config.tiempoSaltoPistas = stringAInt32 (pTPistas);
	config.cantConexiones = stringAInt32 (pCantConexiones);

	return config;
}
